"""进程同步之：Lock
锁是为了确保数据一致性。比如读写锁，每个进程给一个变量增加 1 ，但是如果在一个进程读取但还没有写入的时候，另外的进程也同时读取了，并写入该值，则最后写入的值是错误的，这时候就需要加锁来保持数据一致性。"""
# encoding=utf-8
from multiprocessing import Process, Lock
import time


def l(num, lock):
    lock.acquire()  # 获得锁
    time.sleep(0.2)
    print("Hello Num: %s" % (num))
    lock.release()  # 释放锁


if __name__ == '__main__':
    lock = Lock()  # 创建一个共享锁实例
    for num in range(10):
        Process(target=l, args=(num, lock)).start()
